Automated input in an interactive television system

ABSTRACT

A method and mechanism for automating user input in an interactive television system. An interactive application is conveyed concurrently with a broadcast programming stream in an interactive television system to a receiver. The interactive application is configured to provide added content to a television viewer upon a request by the viewer. In order to request the display of the available added content, a viewer may provide an indication that the use of a script is desired. Subsequently, a script corresponding to the interactive application is utilized to provide input to the interactive application in lieu of the viewer actively providing the input necessary to display the added content. In addition, a viewer may configure the receiver to indicate default preferences for the use of scripts. The receiver may then utilize a standardized script to provide input to interactive application having added content available for viewing. Further, a corresponding program, interactive application, added content, and script may be received and stored on a mass storage device. Subsequently, the stored material may be retrieved for display and execution.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 15/174,100, filed on Jun. 6, 2016, which is a continuation of U.S. patent application Ser. No. 14/195,249, filed on Mar. 3, 2014 and issued on Sep. 6, 2016 as U.S. Pat. No. 9,438,958, which is a continuation of U.S. patent application Ser. No. 09/885,793, filed on Jun. 19, 2001 and issued on Mar. 4, 2014 as U.S. Pat. No. 8,667,553, which applications are incorporated herein by reference in their entireties.

FIELD OF THE INVENTION

The invention relates generally to interactive television systems and more particularly to a system and method for automating user input in an interactive television system.

DESCRIPTION OF RELATED ART

Interactive television systems provide a means to deliver interactive content as well as ordinary television audio and video to a large number of subscribers. Programs broadcast by these systems may incorporate television audio and video, still images, text, interactive graphics and applications, and many other components. The interactive content of the interactive television signal may therefore include application code, data associated with the audio and video, control signals, raw data and many other types of information. Both the interactive content and the audio and video data are delivered to subscribers as “pushed” data. That is, the data is delivered to each of the subscribers, regardless of whether or not the subscribers requested the data.

The interactive functionality of the television is generally controlled by a set-top box connected to the television. The set-top box receives the signal transmitted by a broadcast service provider, separates the interactive portion from the audio-video portion and decompresses the respective portions of the signal. The set-top box uses the interactive information to, for example, execute an application while the audio-video information is transmitted to the television. The set-top box may combine the audio-video information with interactive graphics or audio generated by the interactive application prior to transmitting the information to the television. The interactive graphics and audio may present additional information to the viewer or may prompt the viewer for input. The set-top box may provide viewer input or other information to the broadcast service provider via a modem connection.

Interactive content such as application code or information relating to television programs is usually broadcast in a repeating format. In other words, each piece of information is broadcast a first time, then each is transmitted a second time, and so on. The cycle is repeated so that each piece of interactive data is transmitted, for example, every ten seconds. The pieces of information which are broadcast in this manner form what is referred to as a “carousel.” Frequently, a single carousel is transported as a contiguous data stream. However, it is also possible to multiplex two or more carousels in a single data stream.

Broadcast systems (e.g., interactive television systems) transmit information in a carousel format in order to allow receivers in the system to selectively obtain particular pieces of information in the carousel without requiring a return path from the receivers to the server. If a particular receiver needs a particular piece of information, it can simply wait until next time that piece of information is broadcast, and then extract the information from the broadcast data stream. Other receivers in the system can operate in the same manner, each receiver waiting for the information it needs, and then using only that information. By employing carousels to broadcast information, the system eliminates the need to connect each of the receivers with the server and further eliminates the need for the server to process individual requests for information. Generally, a broadcast signal may include a number of programs which in turn may include a number of audio/video streams and/or data streams. Data streams may be used to carry data such as interactive application data, subtitle information, or other data.

The pieces of information, or data objects, in a carousel may be intended to be combined in a single object data stream to form a program. This program may also contain streaming data such as audio or video. For example, an interactive television game show may combine television audio and video with interactive content such as application code which allows users to answer questions. Another example would be a news program which combines audio and video with application code that inserts current stock prices in a banner at the bottom of the screen. (It should be noted that many types of programs are possible, and it is not necessary to include either audio, video or interactive content any particular program. A program might contain only audio and interactive data (e.g., an interactive radio program,) or it might contain only interactive data (e.g., an interactive weather program that does not contain audio or video streams.) Typically, each program is associated with a corresponding channel and, when a channel containing a particular program is selected by the interactive television receiver, the data which is being broadcast on that channel is downloaded and the program is started.

One of the advantages of interactive television involves using interactive content to enhance the content of a particular broadcast program. For example, during the broadcast of a sporting event such as a baseball game additional content may be transmitted to the viewer in order to enhance their viewing experience. In one example, numerous statistics related to the ongoing baseball game may be included as interactive content. To indicate to the viewer such added content is available, an icon or menu may be displayed on the television with which the viewer may interact. If the viewer desires to view the additional content, the icon is selected or a menu item is selected which then display the additional content. In this manner, only those viewers who wish to view the additional content will see it displayed on their screen. Viewers who do not wish to view the additional content will not have their view of the program obstructed or altered in any way.

While the availability of additional interactive content is highly desirable, such systems as described above require a viewer to interact with the application providing the content in order to view the additional content. In some cases this interaction may involve traversing a number of menu items in order to reach the desired content. Further, in some instances a viewer may wish to always view particular added content while watching a particular show. Unfortunately, requiring the viewer to interact with the interactive application during viewing in order to access the desired content can interfere with the enjoyment of the viewer's experience.

Another problem that arises in the context of interactive television reveals itself when a viewer records a program for later viewing. Under ordinary circumstances, if a viewer wishes to record a program for later viewing, the viewer configures a VCR or other recording device to begin programming a particular program at a particular time. However, in the case of a program that includes added content which is accessed via viewer interaction, the added content will not be recorded. Only that image which is broadcast by the broadcaster will be recorded. Consequently, even though a viewer may desire to see the added content when viewing the recorded program, the added content will be unrecorded and unavailable. Consequently, a method and mechanism for allowing a viewer to access added interactive content without requiring interaction on the viewer's part is desired.

SUMMARY OF THE INVENTION

The problems outlined above may be solved by various embodiments of the invention described herein. One embodiment is a method of using a script in an interactive television system. An interactive application corresponding to a broadcast program is executed in a receiver. The interactive application is configured to provide added content upon request. A script executing within the receiver provides input to the interactive application in lieu of a viewer actively providing that input. Upon detecting the input conveyed by the script, the interactive application provides the added content as if the viewer had actively requested its display.

In one embodiment, the above described script directly corresponds to a particular interactive application and may be conveyed to the receiver along with the interactive application. Alternatively, a receiver may be configured so that a viewer may indicate default preferences concerning the use of scripts. In such an embodiment, a standardized script may be created which provides input to interactive application in a predetermined manner. These standardized scripts may also be conveyed along with an interactive application or may be created dynamically within a viewer's receiver.

BRIEF DESCRIPTION OF THE DRAWINGS

Other objects and advantages of the invention will become apparent upon reading the following detailed description and upon reference to the accompanying drawings in which:

FIG. 1 is a diagram of one embodiment of an interactive television system.

FIG. 2A is a diagram of one embodiment of a head-end.

FIG. 2B is a diagram of one embodiment of a receiver.

FIG. 3A is an illustration of an interactive television display.

FIG. 3B is an illustration of an interactive television display.

FIG. 4 is an illustration of a scripting mechanism.

FIG. 5 illustrates one embodiment of a method of indicating script usage preferences.

FIG. 5A is an illustration of an interactive television display.

FIG. 5B is an illustration of an interactive television display.

FIG. 6 is a diagram illustrating one method of script usage.

FIG. 6A is a diagram illustrating an alternative method of script usage.

FIG. 7 is a diagram illustrating one method of script usage.

While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the drawings and detailed description thereto are not intended to limit the invention to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope of the present invention as defined by the appended claims.

DETAILED DESCRIPTION Overview

Referring to FIG. 1, a functional block diagram illustrating the distribution of interactive television content from a variety of sources to receiving device is shown. In the embodiment shown, a receiving device 12 is coupled to several sources of interactive television content. Receiving device 12 may include any number of suitable devices, examples of such devices include a set-top box (STB), a television (TV), a personal video recorder (PVR), a personal digital assistant (PDA), a personal computer (PC), a video game console, or a mobile/cell phone. While the content may be delivered through many different delivery mechanisms, three exemplary mechanisms are shown in the figure.

In one embodiment, content is conveyed from a source 14 to broadcast station 16. In one embodiment, the content may also be created at source 14 which may include an authoring station configured to create such content. An authoring station may include a computer workstation configured with software which aids in the development of interactive content for conveyance to a broadcast station 16. Authoring station 14 may be directly coupled to broadcast station 16 in which case the conveyance of the created content may be through a local computing network, or similar configuration. Alternatively, authoring station 14 may be remotely located from broadcast station 16. In an embodiment where authoring station is not directly coupled to broadcast station 16, the created content may be conveyed via broadcast, cable, etc. In some cases, content created by authoring station 14 may first be transferred to a storage medium, such as a CD-ROM or DVD-ROM, and transported to broadcast station 16 via more conventional means where it may be stored in a database or other storage device.

Subsequent to its creation, content from sources 14 and 15 may be delivered to receiver 12 through a broadcast transmission network. This network consists essentially of a broadcast station 16 which assembles the content from sources 14 and 15 and processes (e.g., digitizes, compresses and packetizes) the content, and a satellite transmission network 17 which receives the content from broadcast station 16 and transmits it to receiving device 12. (It should be noted that receiving device 12 may be only one of many devices to which this content is distributed.) In one embodiment, broadcast station 16 includes software and/or hardware which is configured to process the content conveyed by source 14 and source 15 as described above. The second delivery mechanism is a direct point-to-point connection between receiver 12 and source of 18, which may be some type of server. This connection may be made via an ordinary telephone line. The third delivery mechanism is also a point-to-point connection, but transmission of the content from source 19 to receiver 12 is made via one or more shared networks (e.g., over the Internet.) Also illustrated in FIG. 1 is a back channel (or return path) 20 by which receiver 12 may convey data to broadcast station 16. Back channel 20 may comprise a telephone line, cable, wireless, or other connection.

One delivery mechanism, the direct point-to-point connection to a source of content, may comprise communication via an ordinary telephone line. This type of connection is typically initiated by the receiver to retrieve information from a data server. Another delivery mechanism, the point-to-point connection through one or more networks, may comprise a typical connection between nodes on the Internet. Because data may be routed through many different shared networks in this case, it may be read, stored and written many times as it is transmitted from source 19 to receiver 12. The third delivery mechanism is a satellite broadcast network. This network may, in one embodiment, comprise a vertical pay TV network. On the other hand, the satellite broadcast network may comprise a horizontal “free to air” television network.

Turning now to FIG. 2A, an overview of one embodiment of a broadcast station (head-end) 16 is shown. The broadcast station 16 of FIG. 2A, includes a database 230 which contains previously created interactive content. As discussed above, a source 14 of interactive content may be external to broadcast station 16 and may be conveyed to broadcast station 16. Database 230 is coupled to a content processing mechanism 200 which is configured to process the content received from database 230 and convey the processed content. In one embodiment, content processing mechanism 200 may comprise a server computer and may also be coupled to receive and convey content from the Internet or World Wide Web. Processing mechanism 200 is configured to convey the processed content to multiplexor 220. Multiplexor 220 is also coupled to receive audio/video signals 240. Multiplexor 220 multiplexes the received signals and conveys the multiplexed signal to network communications operator 17 where it is subsequently conveyed to a receiving device. Finally, broadcast station 16 includes a return data processor 210 coupled to back channel 120. In one embodiment, return data processor 210 may comprise a modem which receives data for further processing within broadcast station 16. While the above description describes a source of interactive content as being at a broadcast station 16, in an alternative embodiment database 230 and content processing mechanism 200 may reside at the location of a network communications operator 17. An example of such an alternative embodiment may be a cable station which inserts interactive content into a broadcast signal prior to transmission.

Referring to FIG. 2B, a block diagram of a receiver 22 is shown. In one embodiment, receiver 22 is implemented in a set-top box for a television. In other embodiments, the receiver may be incorporated into the circuitry of other components of a receiving station, such as the television which is coupled to the receiver, or one of the devices 12 described above. Interactive television content is delivered to receiver 22 through a signal receiver such as tuner 31. In this embodiment, a broadcast signal is fed into tuner 31. Tuner 31 selects a channel on which broadcast interactive content is transmitted and passes the content to processing unit 32. (It should be noted that interactive television content may also be delivered to receiver 22 through other signal receivers, such as modem 38.) The interactive television signal may contain information in addition to the television programming. For example, interactive application modules or control signals may be embedded in the broadcast signal. Alternative embodiments of receiver 22 may include, or be coupled to, a mass storage device such as a hard disk drive.

In the case of a digital satellite transmission, the content is formatted into packets, so processing unit 32 demultiplexes packets from the broadcast signal, and reconstructs the packets into what is typically a compressed television program and/or interactive application embodied in the received content. The decompression is performed by decompression unit 33. The audio and video information associated with television program embodied in the signal is then conveyed to display unit 34, which may perform further processing and conversion of the information into a suitable television format, such as NTSC or HDTV audio/video. Applications reconstructed from the broadcast signal are routed to random access memory (RAM) 37 and are executed by control unit 35. The user can interact with the applications or other interactive content through I/O devices coupled to I/O interface 26. I/O interface 26 is configured to receive input from a viewer. For example, a viewer may utilize an infrared remote control which is detected by interactive receiving unit 26. Alternatively, a viewer may utilize input devices such as a mouse, writing tablet, voice, or other device which is detected by interactive receiving unit 26. Many other possible viewer input devices are possible and are contemplated. (It should be noted that the foregoing description of the functionality of the interactive television system is only an example of such a system, and is not intended to be limiting.)

Control unit 35 may comprise a microprocessor, micro-controller, digital signal processor (DSP), or some other type of instruction processing device. Memory 36 may include memory units which are static (e.g., SRAM), dynamic (e.g., DRAM), volatile or non-volatile (e.g., FLASH), as required to support the functions of the receiver. System code is typically stored in FLASH memory. When power is applied to the receiver, control unit 35 executes operating system code which is stored in memory 36. The operating system code executes continuously while the receiver is powered in the same manner the operating system code of a typical personal computer (PC) and enables the receiver to execute control information and application code.

In one embodiment, a viewer uses a remote control to provide input to receiver 22. I/O interface 26 detects input provided by a viewer. Input received from a viewer via I/O interface 26 may then be stored in a message queue for processing by control unit 35. For example, receiver 22 may execute an interactive application which is configured to process commands and other input by a viewer by accessing a particular address region in RAM 37. In such a configuration, a message queue for storing viewer input may be located at that particular address region. Alternatively, an interactive application may be configured to detect and receive input via the operating system code. Numerous alternative configuration for conveying viewer input to an interactive application are possible and are contemplated.

The receiver is typically housed in a set-top box connected to a user's television. It should be noted that the receiver may comprise any processing unit for receiving and processing the interactive television content. The receiver may be in a set-top box housing which physically sits on top of a television, it may be in some other location external to the television (e.g., on the side or back of the television or remotely located from the television), or it may be incorporated into the television itself. Similarly, the television to which the output of the receiver is directed may comprise a television or a video monitor employing any suitable television format (e.g., NTSC or HDTV), or it may be replaced by other devices, such as a recording device.

Interactive Content

Turning now to FIGS. 3A and 3B, an exemplary illustration of an interactive application providing an opportunity for the display of added content is shown. FIG. 3A shows a television display 300 which is displaying a program in which interactive added content is available. Included in FIG. 3A are non-interactive content 360 and 370 which may appear in interactive and non-interactive systems. Also included are interactive content 330 and 310 which may appear in interactive systems. In the example shown, icon 310 indicates there is interactive added content available with the displayed program. Arrow 330 illustrates one method a viewer may use to select interactive content on the display 300. Rather than utilizing an arrow 330, other embodiments may simply highlight selected areas of the screen to indicate the currently selected object. In the example shown, arrow 330 corresponds to a remote control device operated by the viewer which may be used to move the arrow 330 about the display 300. In one embodiment, a viewer moves the arrow 330 over icon 310 and presses a button on the remote control in order to select icon 310. In this manner, a viewer is able to access the added interactive content.

FIG. 3B illustrates display 300 subsequent to a viewer selecting icon 310. In the example shown, the icon is replaced with a menu 320 of items 350A-350G for selection by the viewer. Elements referred to herein with a particular reference number followed by a letter will be collectively referred to by the reference number alone. For example, menu 320 items 350A-350G will be collectively referred to as menu items 350. A viewer may then utilize the remote control and corresponding arrow 330 to select one of the menu items 350. Selecting one of menu items 350 may then display another menu or may display added content, such as sports statistics or other data. While the above illustrations refers to added content which corresponds to the currently broadcast program, any type of added content may be added. For example, a stock ticker, news headlines, music, a video game, or any other content may be utilized.

Scripts

As previously discussed, a viewer may wish to have the added content displayed without having to actively engage in interaction with the program and associated interactive application. One method for enabling the display of added content involves the use of a script associated with the interactive application. In addition to the television program and interactive application being conveyed to a receiver, a “script” corresponding to the interactive application is created and conveyed to the receiver as well. As used herein, a script may be described as a group of executable commands or instructions.

In the present context, a script may be used to provide input to an interactive application that would otherwise be received via a viewer's active interaction (e.g., by using a remote control). When such a script is created, the creator of the script typically has some knowledge of the content of the corresponding program and interactive application which is being broadcast. For example, the producer of a program may also have software tools which enable the creation of interactive applications. The producer may utilize these tools to create an interactive application which enhances the corresponding program. If the program is a basketball game, for example, the producer may wish to provide constantly updated game statistics and news of other basketball games to those viewers who wish to view such information. By creating the appropriate interactive application, the producer may make this added content available to viewers.

In a typical interactive television broadcast, the above described basketball game and corresponding interactive application supporting the game statistics and news are broadcast to viewers. Viewers wishing to view the added content are then required to utilize a remote control or other device to actively request the display of the added content. To eliminate the need for this active viewer participation, the producer may create a script. In one embodiment, the creator of the script configures the script to provide appropriate input data at the appropriate times. For example, during the broadcast of the basketball game, the corresponding interactive application may be configured to provide the opportunity to view added content at predetermined times. Such an opportunity may be indicated to a viewer by an icon 310 displayed on a television screen or some other appropriate manner. The script is configured to provide input data to be used by the interactive application. In the present example, the script provides input which indicates the added content is to be displayed. At the appropriate time, the interactive application determines if any input corresponding to the added content is present. Finding the input that was provided by the script, the interactive application proceeds to respond accordingly and displays the added content as if the input had been actively provided by a viewer. Advantageously, no active viewer interaction is required in order to access and display the added content. In this embodiment, a script may include a number of commands or actions and the times at which they are to be acted upon.

In one embodiment, a message queue may be utilized to store input received from a viewer via a remote control or other device. An interactive application then retrieves input from the message queue and responds accordingly. In such an embodiment, a script may be used which places data in the message queue for consumption by the interactive application. Because the script is configured to provide input data which may be indistinguishable from active viewer input, such a script may be used with any interactive application which is configured to receive such viewer input. Advantageously, interactive applications need not be modified to take advantage of the benefits provided by scripts.

FIG. 4 is an exemplary diagram illustrating one embodiment of the scripting mechanism described above. FIG. 4 includes a reference timeline 400 illustrating a progression of time, a broadcast program 402, an interactive application 404, and a script 406. Interactive application 404 and script 406 are configured to correspond to the program 402 being broadcast. In this example, program 402, interactive application 404 and script 406 begin conveyance at time 0:00:00 represented by marker 410, though it is not necessary that all three begin at the same time. In one embodiment, interactive application 404 and script 406 are conveyed in a carousel manner as described above. However, any suitable manner of conveyance may be used. Marker 412 at time 0:10:00 indicates a first opportunity for the display of added content corresponding to program 402. Interactive application 404 is configured to make available added content at this time. Interactive application may have already downloaded the added content, may dynamically download added content, may be configured to request transmission of added content, or otherwise. Script 406 412 may then be configured to provide input at or near time 0:10:00 412 for consumption by interactive application 404. Interactive application 404 is configured to retrieve the input provided by script 406 and act accordingly (e.g., by displaying or otherwise providing the available added content). A second time marker 414 at time 0:32:15 provides a second opportunity for the display of added content by interactive application 404 and corresponding input by script 414.

Various alternatives exist for a viewer to indicate a desire for a script to be run. In addition, the nature of the script created may assume a number of forms as well. FIG. 5 illustrates one embodiment of a method for a viewer to express an intent to run a script. FIG. 5 represents a list of menu items which may be utilized in software executed on receiver 22 for configuring a viewer's preferences. In the embodiment illustrated, a viewer may be presented with a menu option 500 for configuring options related to scripts. Upon selecting this menu item via a remote control or other input device, a new set of options 510 are presented. One option 510A allows a viewer to disable all scripts which may be available for a program or interactive application. Disabling scripts will result in the display of a program without the added content. A second option 510B allows a viewer to access another menu 520 for options related to enablement of scripts. Selecting option 510B results in the display of further options 520. Option 520A allows a viewer to direct that all available scripts are to be run. Option 520B allows a viewer to display further options (not shown) related to enabling particular scripts. In one embodiment, a viewer may identify particular scripts to be run based on a time of broadcast, a code associated with a particular broadcast, or any other suitable means. For example, a viewer may configure a receiver to record a particular program at a later time and indicate that a script corresponding to that program is to be run. Alternatively, while watching a program a viewer may indicate any associated script is to be utilized.

A further selection menu 530 may be provided which allows a viewer to specify a particular level of script execution. In such an embodiment, a script may be configured to access increasing levels of added content which may be provided by an interactive application. For example, given the basketball paradigm used above, an interactive application may include a number of levels of added content, each corresponding to an increasing level of detail or entirely different content. A first level of content may simply include basic game statistics. A second level of content may provide news related to particular basketball players in addition to the game statistics. Still further, a third level of content may include a window in the display which shows the text of a live Internet “chat” of people watching the game. Given such an interactive application, a script may be created which is configured to provide the necessary input to access one or more of these levels of content.

FIGS. 5A and 5B illustrate one embodiment of an interactive television display incorporating the above described scripting mechanism. FIG. 5A illustrates a display 300 showing a television programming grid. The grid includes a column 540 indicating different programming channels and a row 542 indicating different programming time slots. Entries within the grid show television programs which are scheduled for the corresponding time and channel. For example, a program 544 entitled “Magician's Best Secrets Not Revealed” is scheduled for broadcast from 8:30-9:30 on CBS. Utilizing a remote control or other device, a viewer may highlight a particular entry in the grid for information regarding the highlighted program. Further, the viewer may select the highlighted entry by pressing a button, for example. Numerous methods for maneuvering among and selecting entries in a television grid are possible and are contemplated.

FIG. 5B illustrates one embodiment of a display 300 subsequent to a viewer selecting entry 544. Included in the display 300 of FIG. 5B are a section 550 indicating the current selection and a section 560 indicating options which are available for the current selection 550. In the embodiment shown, the selection 550 includes information such as the title of the selected program, the channel on which it is to be broadcast, and the time and date of scheduled broadcast. As shown, five options 570A-570E are available for the current selection 550. Each option 570 in the embodiment shown includes a check box which may be selected by a viewer, thereby allowing a viewer to indicate his or her preferences. A first option 570A allows a viewer to indicate the current selection 550 is to be recorded via a PVR. A second option 570B allows a viewer to indicate the current selection 550 is to be recorded via a VCR. A third option 570C (VCR-ITV) allows a viewer to indicate the current selection is to be recorded via a VCR, with interactive television content (ITV) recorded as well. Selecting option 570C enables the above described scripting mechanism. A fourth option 570D indicates a receiver or other device is to automatically tune to the current selection 550 when it is broadcast. Finally, a fifth selection 570E indicates a PopUp reminder is to be displayed for the current selection 550 when it is broadcast.

It is understood that the above menu structure and check box selection methods are intended to be exemplary only. Any suitable method of gathering preferences may be utilized. Preferences indicated by a viewer may then be stored in a volatile or non-volatile storage of receiver 22 which may later be detected by operating software, an application, or a script executing on receiver 22. Alternatively, preferences of a viewer may be conveyed via a return path, such as back channel 20, for processing or storage at head-end 16. In one embodiment, receiver 22 is configured to ascertain the script use preferences of a viewer upon broadcast of a program. Alternatively, script use preferences may be checked upon download and execution of an interactive application. For example, upon receiving an interactive application, receiver 22 may check a particular region of memory or a file stored on a mass storage device to determine if a user has indicated a desire that a script be utilized. Numerous possibilities exist for when and how a viewer's script use preferences may be determined and are contemplated.

Default and Standard Scripts

While the above examples illustrate the use of scripts which directly correspond to a particular interactive application, alternative embodiments may not require such a correspondence. For example, a standard mechanism may be used in all interactive applications which are configured to receive a standardized form of input for indicating a viewer's preferences regarding script usage. In one such embodiment, interactive applications may be configured to one of four different input commands corresponding to added content. For example, if added content is available, an interactive application may present a viewer the opportunity to select one or more “levels” of display of the added content. The selection of a particular level of display may utilize a particular command that is common to all such opportunities presented by all interactive applications configured for such input. In such an embodiment, a viewer may wish to display a minimum level (for example “level 1”) of added content in all cases where added content exists. Consequently, a default “level 1” script may be utilized which provides input corresponding to a “level 1” viewer selection to all interactive applications. Advantageously, the creation of scripts may be simplified.

The above described default script functionality may be incorporated into the operating system software of receiver 22, may be downloaded to a receiver 22 as an application, may be created dynamically by the operating system software, or otherwise. In this embodiment, it may no longer be necessary to create scripts which are specific to a particular interactive application or program. Instead, receiver 22 may be configured to detect a default user preference for script usage, detect when an interactive application makes such an opportunity to view added content available, and supply the corresponding input at the appropriate time. Alternatively, if a viewer indicates a default preference for a same level of added content in all cases, receiver 22 may be configured to store an appropriate input in a message queue in a repeated manner. For example, the input may be stored in the queue periodically, or the receiver 22 may be configured to detect when the message queue is low or empty and replenish the message queue with the appropriate input. When an interactive application makes added content available, it checks the message queue and finds the appropriate input indicating added content is to be displayed. In this alternative embodiment, it may not be necessary for receiver 22 to detect when an interactive application makes added content available. Advantageously, the configuration of receiver 22 may be simplified.

Turning now to FIG. 6, one embodiment of a method for script usage is illustrated. Initially, an interactive application is created 600. Within the interactive application may be opportunities for the display of added content corresponding to a program. In addition, a script is created 602 which corresponds to the created interactive application. The script is configured to provide input for use by the interactive application at those times when the interactive application makes added content available for display. The application and script are then conveyed 604 to a receiver where they are received 606. When the interactive application and script have been received they are executed 608. During execution, added content is made available 610 at a particular time. If script usage is enabled and the script which was received has input at that time 612, the script makes the corresponding input available to the application 614 and the added content is displayed 618. If the script does not have input available 612, but a viewer actively provides input 616, the added content is displayed 618. If neither the script 612 nor a viewer 616 provides input, execution of the application and script continues 608 without displaying the added content.

FIG. 6A illustrates an alternative embodiment of a method for script usage. In the embodiment of FIG. 6A, an application, script and corresponding program stream are received (block 620). In the embodiment shown, the corresponding program stream may include added content as described above. Subsequently, the application, script and program stream are stored on a mass storage device (block 622). Such a mass storage device as a hard disk, CD-ROM, DVD, or any other suitable storage device may be used. In a preferred embodiment, the mass storage device comprises a non-volatile storage. Further, the mass storage device utilized may include removal storage media such that stored content may be readily removed from the device for archival purposes, transport to a different location, or any other purpose. Advantageously, program, added content, application, and script data may be recorded at one location and subsequently viewed and executed at a later time or different location. Subsequent to storing the application, script and program stream, the application, script and program stream are retrieved from the mass storage device (block 624). Upon retrieval, the application and script are execute (628) and the corresponding program stream may be displayed on a display device. During execution, added content is made available 630 at a particular time. If script usage is enabled and the script which was received has input at the corresponding time 632, the script makes the corresponding input available to the application 634 and the added content is displayed 638. If the script does not have input available 632, but a viewer actively provides input 636, the added content is displayed 638. If neither the script 632 nor a viewer 636 provides input, execution of the application and script continues 628 without displaying the added content. Advantageously, a viewer may record a program and added content for later viewing at a more convenient time. When the program is viewed at the later time, the viewer may enable or disable the script mechanism to control the display of added content.

FIG. 7 illustrates an embodiment of script usage wherein a viewer may indicate certain default preferences. An interactive application is created and conveyed 700 and subsequently received 702 by a receiver. The receiver determines whether default script usage preferences have been indicated 704. As described above, such an indication may have been made at an earlier time by a viewer and stored in memory or other storage device. In one embodiment, the operating system software of a receiver is configured to accept input from a viewer indicating preferences and later retrieve those indicated preferences. If viewer default preferences corresponding to script usage are detected 704, input corresponding to those preferences is made available to the interactive application. In the embodiment of FIG. 7, a standardized script may be downloaded or dynamically created by the operating system software of the receiver. The script then provides the corresponding input in a message queue for retrieval by the interactive application, though any suitable mechanism for conveying the input may be utilized. Subsequent to execution 708 of the interactive application, added content may be made available by the interactive application 710. The interactive application may then determine if any input corresponding to the added content is available 712 by accessing the message queue. If input is available 712, the interactive application acts upon the received input 714 (e.g., by displaying an indicated level of added content), and continues execution 708. On the other hand, if no added content is available 710 or no input corresponding to the input is available 712, execution continues 708 without displaying the added content.

In addition to the above embodiments, an interactive application may be configured to display added content by default and receive an indication to not display added content. Similarly, a script may be configured to provide input which indicates particular added content is not to be displayed. Various permutations enabling and disabling script usage and the display of added content and are possible and are contemplated.

Various embodiments may further include receiving, sending or storing instructions and/or data implemented in accordance with the foregoing description upon a carrier medium. Generally speaking, a carrier medium may include transmission media or signals used in broadcast systems and otherwise such as electrical, electromagnetic, or digital signals, conveyed via a communication medium such as network and/or a wireless link. For example, a network operator may convey signals which comprise program instructions via a broadcast system. A carrier medium may also include storage media or memory media such as magnetic or optical media, e.g., disk or CD-ROM, volatile or non-volatile media such as RAM (e.g. SDRAM, RDRAM, SRAM, etc.), ROM, etc.

While the present invention has been described with reference to particular embodiments, it will be understood that the embodiments are illustrative and that the invention scope is not limited to these embodiments. For example, while discussed in terms of television systems, the invention may also be used in the context of a device coupled to the Internet, such as a personal computer or video game platform. In such an embodiment, a user may have a broadband connection to the Web, such as via cable modem or DSL whereby programs, interactive applications and scripts are received. Many variations, modifications, additions and improvements to the embodiments described are possible. These variations, modifications, additions and improvements may fall within the scope of the invention as detailed within the following claims. 

1. A method comprising: obtaining, by a device, through an interface, input by a user, the input being to determine content to present in association with a media program; executing, at the device, based on an indication stored in association with the user, one or more instructions to provide the input to an interactive application associated with the media program; and providing, based on executing the interactive application and the provided input, the content to present with the media program.
 2. The method of claim 1, further comprising: receiving, at the device and from a media content system via a network, the media program, the media content system comprising a server, the media program comprising a video content item; and receiving, at the device, the interactive application associated with the media program.
 3. The method of claim 2, further comprising: receiving, at the device, from the media content system, the one or more instructions in a script.
 4. The method of claim 3, further comprising: receiving, at the device, the media program and the interactive application along with the one or more instructions in the script.
 5. The method of claim 3, wherein the script is stored in the device prior to the receiving of the media program and the interactive application.
 6. The method of claim 1, wherein the one or more instructions, upon execution, provide the input at a particular time at which the interactive application presents a user interface configured to receive the input.
 7. The method of claim 1, wherein the one or more instructions, upon execution, place the input in a message queue of the device, the message queue being configured to receive the input by the user, the interactive application being configured to retrieve the input from the message queue.
 8. The method of claim 1, further comprising: downloading, based on the executing of the interactive application, to the device, the content in response to the provided input.
 9. The method of claim 1, wherein the input is first input, and wherein the method further comprises: receiving, at the device, prior to the receiving of the media program, a second input to enable the one or more instructions; and enabling, at the device, the one or more instructions in the device in response to the second input.
 10. The method of claim 1, wherein at least a portion of the one or more instructions are in a default script configured to provide the input to a plurality of interactive applications comprising the interactive application.
 11. The method of claim 10, wherein the default script is incorporated within an operating system of the device.
 12. The method of claim 10, wherein the provided input comprises a user preference for one of a plurality of attributes for additional content to be provided by the interactive application.
 13. The method of claim 12, further comprising: receiving, at the device, prior to receiving the media program, a user preference input indicating the one of the plurality of attributes, the provided input being based on the user preference input; and storing the received user preference input at the device as the indication stored in association with the user.
 14. The method of claim 1, further comprising: receiving, at the device and from a media content system via a network, the media program and the interactive application associated with the media program; and recording, during the receiving of the media program, the media program and the content for presentation to the user after the recording of the media program and the content.
 15. The method of claim 1, wherein the one or more instructions is a group of instructions that includes a first instruction executed based on a first condition and a second instruction executed based on a second condition.
 16. The method of claim 1, wherein the one or more instructions includes an instruction executed based on one or more conditions.
 17. The method of claim 1, wherein the content to present in association with the media program is selected from the group consisting of sports statistics, a stock ticker, news headlines, music, and a video game.
 18. A device, comprising: one or more hardware processors; and a memory storing instructions that, when executed by at least one of the one or more hardware processors, causes the device to perform operations comprising: obtaining, through an interface, input by a user, the input being to determine content to present in association with a media program; executing, based on an indication stored in association with the user, one or more instructions to provide the input to an interactive application associated with the media program; and providing, based on executing the interactive application and the provided input, the content to present with the media program.
 19. The device of claim 18, wherein the operations further comprise: receiving, from a media content system via a network, the media program, the media content system comprising a server, the media program comprising a video content item; and receiving the interactive application associated with the media program.
 20. A non-transitory computer-readable storage medium comprising instructions that, when executed by one or more processors of a device, cause the device to perform operations comprising: obtaining, through an interface, input by a user, the input being to determine content to present in association with a media program; executing, based on an indication stored in association with the user, one or more instructions to provide the input to an interactive application associated with the media program; and providing, based on executing the interactive application and the provided input, the content to present with the media program. 